unit StringGridHack;

interface

uses Grids;

type
THackStringGrid = class(TStringGrid)
public
 procedure InsertRow(ARow: Longint);
end;

procedure DeleteGridRow(MyStringGrid: TStringGrid; ARow: Integer);
procedure InsertGridRow(MyStringGrid: TStringGrid; ARow: Integer);

implementation

procedure THackStringGrid.InsertRow(ARow: Integer);
begin
  if ARow < FixedRows then
   ARow:=FixedRows;
  RowCount := RowCount + 1;
  MoveRow(RowCount - 1, ARow);
end;

procedure DeleteGridRow(MyStringGrid: TStringGrid; ARow: Integer);
begin
  with THackStringGrid(MyStringGrid) do
   DeleteRow(ARow);
end;

procedure InsertGridRow(MyStringGrid: TStringGrid; ARow: Integer);
begin
  with THackStringGrid(MyStringGrid) do
   InsertRow(ARow);
end;

end.
 